' -−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-
' This program exported from BASIC Anywhere Machine (Version [5.2.3].[2024.07.01.10.00]) on 2024.07.02 at 04:13 (Coordinated Universal Time)
' This BAM Program by Charlie Veniot
' Inspired by the Small Visual Basic program found on Facebook (https://www.facebook.com/share/p/RfHe2pu4Xc31CQWM/)
' -−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-
SCREEN _NEWIMAGE( 601, 601, 17 )
DECLARE SUB DrawShape( a%, p% )
' 🔖 a% = angle, p% = TRUE or FALSE (whether to paint or not)
sc% = 62
' 🔖 Shape border colour
' -−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-
' Main Program
FOR a% = 0 TO 345 STEP 15
IF sc% = 62 THEN sc% = 61 ELSE sc% = 62
' 🔖 The shapes overlap, so we need to generate them with alternating border colours so PAINT can find the boundaries of each shape
COLOR sc% : CALL DrawShape( (a%), TRUE )
COLOR 63 : CALL DrawShape( (a%), FALSE )
' 🔖 Redraw shape's border with the colour white
next a%
' -−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-−-
' Subroutines
SUB DrawShape( a%, p% )
DRAW "bm300,300"
DRAW "B TA" + a% + " U 160"
a% = a% + 295
px% = POINT(0) : py% = POINT(1)
DRAW "TA" + a% + " U 150"
_DELAY 0.02
DRAW "TA" + ( a% + 5 ) + " R 64"
_DELAY 0.02
draw "TA" + ( a% + 345 ) + " D 170"
_DELAY 0.02
DRAW "M" + px% + "," + py%
_DELAY 0.02
IF p% THEN DRAW "B U 120" : DRAW "B L 4" : PAINT ( POINT(0), POINT(1) ), INT( RND * 60 + 1), sc% : _DELAY 0.05
END SUB